package com.fz.study.project.utils;


import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

@Component
@Data
@ConfigurationProperties("aliyun.oss")
public class AliOSSUtils {
    private String endpoint ;
    private String accessKeyId ;
    private String accessKeySecret ;
    private String bucketName ;

    public String upload(MultipartFile file) throws IOException {
//        获取上传的文件流
        InputStream inputStream = file.getInputStream();
//        获取上传的文件名称
        String originalFilename = file.getOriginalFilename();
//        避免出现重复名称使用UUID来处理
        String fileName = UUID.randomUUID().toString().replace("-","")
                + originalFilename.substring(originalFilename.lastIndexOf("."));
//        上传文件到OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
        ossClient.putObject(bucketName,fileName,inputStream);
//        文件访问路径
        String url = endpoint.split("//")[0]+"//"+bucketName+"."+endpoint.split("//")[1]+"/"+fileName;
//        关闭ossClient
        ossClient.shutdown();
//        返回上传路径
        return url;
    }

}
